﻿// 5031. 矩阵扩张.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>


/*
https://www.acwing.com/problem/content/5034/

给定一个 1×1
 的方格矩阵，方格为白色：

1.png

你需要对该矩阵进行 k
 次扩张操作，并输出最终得到的矩阵。

扩张操作的具体规则如下。

首先，给定一个 n×n
 的方格矩阵，其中的每个方格要么是白色，要么是黑色，称此矩阵为模板矩阵。

在进行扩张操作时，当前矩阵中的每个方格都将扩张为一个 n×n
 的方格矩阵，其中：

每个白色方格扩张得到的方格矩阵与模板矩阵相同。
每个黑色方格扩张得到的方格矩阵只包含黑色方格。
下面举例进行说明。

令 n=2,k=3
，模板矩阵如下所示：

2.png

每一次扩张时，每个白色方格会扩张为

2.png

每一次扩张时，每个黑色方格会扩张为

2.2.png

第 1
 次扩张后，得到一个 2×2
 的方格矩阵：

2.png

第 2
 次扩张后，得到一个 22×22
 的方格矩阵：

3.png

第 3
 次扩张后，得到一个 23×23
 的方格矩阵：

4.png

这就是最终得到的矩阵。

输入格式
第一行包含两个整数 n,k
。

接下来 n
 行，每行包含 n
 个字符，每个字符要么为 .，要么为 *，其中第 i
 行第 j
 个字符用来描述模板矩阵第 i
 行第 j
 列的方格颜色，. 表示白色，* 表示黑色。

保证模板矩阵中至少包含一个白色方格。

输出格式
输出一个 nk×nk
 的字符矩阵，用来表示最终得到的矩阵。

. 表示白色方格，* 表示黑色方格。

数据范围
所有测试点满足 2≤n≤3
，1≤k≤5
。

输入样例1：
2 3
.*
..
输出样例1：
.*******
..******
.*.*****
....****
.***.***
..**..**
.*.*.*.*
........
输入样例2：
3 2
.*.
***
.*.
输出样例2：
.*.***.*.
*********
.*.***.*.
*********
*********
*********
.*.***.*.
*********
.*.***.*.
*/
int main()
{
    std::cout << "Hello World!\n";
}

 